透過30天練習,學會30個應用,文章原文出處 http://blog.huijun.org/post/33227612245/1-social-framework
簡介:
今天要介紹的是 iOS 6 才出現的 Social Framework,Social Framework 提供讓你的 App 很輕鬆的就可以整合社群網站的功能,目前他提供了預設的 post message template 讓你很輕鬆的就可以發佈訊息出去,目前可以使用的服務有三個社群網站: Facebook、Twitter、新浪微博。
Social Framework主要由兩隻Class所構成
SLRequest Class Reference:
SLRequest 這隻 Class 封裝了 HTTP Request 的屬性,提供了很方便的 template 讓你可以發一個request.
SLComposeViewController:
SLComposeViewController 主要提供使用者去呈現發表訊息的那個 view.
Step 1:
建立一個 Single View Application 專案,我取名為 HelloSocial,勾選 Use Storyboards 跟 ACL
Step 2:
由於要使用Social Framework,所以我們先點到專案的 Build Phases -> Link Binary With Libraries -> 新增 Social Framework -> 再把他拖到 Framework 資料夾裡面,這樣你就可以使用 Social Framework的功能了
Step 3:
接著我們去 MainStoryboard.storyboard 新增一個 Round Rect Button到畫面上並且把它取名成 Post to Facebook
Step 4:
然後我們切換split view,然後按著ctrl 把 button拉到ViewController.m,新增一個Post的function
Step 5:
切換到ViewController.h,先import Social Framework然後宣告一個變數
#import <UIKit/UIKit.h>
#import <Social/Social.h>
@interface ViewController : UIViewController{
SLComposeViewController *rexPost;
}
@end
Step 6:
打開 ViewController.m 修改 Post 的 function
//
// ViewController.m
// HelloSocial
//
// Created by Rex Chen on 12/10/9.
// Copyright (c) 2012年 Huijun.org. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)Post:(id)sender {
if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {
rexPost = [[SLComposeViewController alloc] init];
rexPost = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[rexPost setInitialText:@"iOS學習筆記,第1天: Social Framework"];
[rexPost addURL: [[NSURL alloc] initWithString:@"http://blog.huijun.org/post/33227612245/1-social-framework"]];
[self presentViewController:rexPost animated:YES completion:nil];
}
[rexPost setCompletionHandler: ^(SLComposeViewControllerResult result){
NSString *output = [[NSString alloc] init];
switch (result) {
case SLComposeViewControllerResultCancelled:
output = @"取消送出";
break;
case SLComposeViewControllerResultDone:
output = @"送出成功";
break;
default:
break;
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Facebook" message:output delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
}];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Step 7:
然後就已經寫好,我們來看一下結果。你必須先到設定去設定一下你的Facebook所要使用的賬號,然後就可以使用。
按下Post之後就可以成功發佈到你的Facebook上囉
花個十分鐘練習一下,馬上就可以整合三個社群網站囉!
Sample code放在 Github裡
https://github.com/rexchen/iOSamples/tree/master/HelloSocial
NSString *output = [[NSString alloc] init];
好令人懷念的指令啊,那是兩三年前的事兒啦......
啊啊,對不起,我的意思是以前我曾用過這指令這系統,現在已不用xcode了,引起誤會,金係歹勢啊,我飛先......